package com.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class ReadStringDemo {
    public static void main(String[] args) throws IOException {
        /**
         * String(byte[] bytes)
         * 构造一个新的 String通过解码的字节数组指定使用平台的默认字符集。
         */

        // 创建一个File对象，代表要读取的文件。本例中文件名为"text.txt"，位于当前工作目录下
        File file = new File("./text.txt");

        // 使用File对象创建一个FileInputStream实例，用于从指定文件中读取数据
        FileInputStream fis = new FileInputStream(file);

        // 获取文件的长度（以字节为单位）
        long length = file.length();

        // 根据文件长度创建一个相应大小的字节数组，用于存储从文件中读取的数据
        byte[] bytes = new byte[(int) length];

        // 调用FileInputStream对象的read方法，将文件内容读取到字节数组中
        fis.read(bytes);

        // 使用StandardCharsets.UTF_8字符集将字节数组解码为字符串，确保正确还原文件中的文本内容
        String string = new String(bytes, StandardCharsets.UTF_8);

        // 输出从文件中读取到的字符串内容
        System.out.println(string);

        // 关闭FileInputStream对象，释放系统资源并确保所有数据已完全读取
        fis.close();

    }
}
